

/**    
 * 文件名：SiftTest.java    
 *    
 * 版本信息：    
 * 日期：2014年3月6日    
 * xyj 足下 xyj 2014     
 * 版权所有    
 *    
 */

/**
 * @项目名称：opencv-test
 * @类名称：SiftTest
 * @类描述：
 * @创建人：zhuyi
 * @创建时间：2014年3月6日 上午10:46:25
 * @修改人：zhuyi
 * @修改时间：2014年3月6日 上午10:46:25
 * @修改备注：
 * @version
 * 
 */
public class SiftTest {

    public static void main(String[] args) {

        // System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // Mat testMat = Highgui.imread("E:\\iii\\IMG_2494.JPG");
        // Mat desc = new Mat();
        // FeatureDetector fd = FeatureDetector.create(FeatureDetector.SIFT);
        // MatOfKeyPoint mkp = new MatOfKeyPoint();
        // fd.detect(testMat, mkp);
        // DescriptorExtractor de =
        // DescriptorExtractor.create(DescriptorExtractor.SIFT);
        // de.compute(testMat, mkp, desc);
        // System.out.println(desc.cols());
        // System.out.println(desc.rows());
        //
        // Mat outImg = new Mat();
        // Features2d.drawKeypoints(testMat, mkp, outImg, new Scalar(0.0), 4);
        // Highgui.imwrite("E:/7.jpg", outImg);

//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//
//        MatOfKeyPoint vector1 = new MatOfKeyPoint();
//        MatOfKeyPoint vector2 = new MatOfKeyPoint();
//
//        Mat img1 = Highgui.imread("E:\\image\\rongbao\\129\\40988.jpg");
//        Mat img2 = Highgui.imread("E:\\image\\rongbao\\129\\41000.jpg");
//
//        FeatureDetector sirfDetector = FeatureDetector.create(FeatureDetector.SIFT);
//        sirfDetector.detect(img1, vector1);
//        sirfDetector.detect(img2, vector2);
//
//        Mat descriptors1 = new Mat();
//        Mat descriptors2 = new Mat();
//
//        DescriptorExtractor siftDescriptor = DescriptorExtractor.create(DescriptorExtractor.SIFT);
//
//        siftDescriptor.compute(img1, vector1, descriptors1);
//        siftDescriptor.compute(img2, vector2, descriptors2);
//
//        MatOfDMatch matches = new MatOfDMatch();
//
//        DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.FLANNBASED);
//
//        matcher.match(descriptors1, descriptors2, matches);
//
//        System.out.println(matcher);
//
//        Mat outImg = new Mat();
//        Features2d.drawMatches(img1, vector1, img2, vector2, matches, outImg, new Scalar(0, 0, 0), Scalar.all(-1),
//                new MatOfByte(), 4);
//        Highgui.imwrite("E:/8.jpg", outImg);

    }
}
